package cn.kgc.tangcco.db;

import cn.binarywang.tools.generator.ChineseIDCardNumberGenerator;
import cn.binarywang.tools.generator.ChineseMobileNumberGenerator;
import cn.binarywang.tools.generator.ChineseNameGenerator;
import cn.binarywang.tools.generator.base.GenericGenerator;
import cn.hutool.core.util.IdUtil;
import cn.kgc.tangcco.dto.User;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 李昊哲
 * @Description 数据库
 * @create 2020/8/28 上午9:01
 */
public class Kgc {
    /**
     * 数据库全局唯一
     */
    private static Kgc instance = new Kgc();


    /**
     * 用户表
     */
    private List userList = new ArrayList();

    private Kgc() {
        // 初始化数据库中的数据
        mock();
    }

    /**
     * 获取数据库实例
     *
     * @return
     */
    public static Kgc getInstance() {
        return instance;
    }

    public List getUserList() {
        return userList;
    }

    /**
     * 模拟数据库中的数据
     */
    public void mock() {
        // 获取模拟中文姓名的对象
        GenericGenerator chineseNameGenerator = ChineseNameGenerator.getInstance();
        // 获取模拟中国身份证的对象
        GenericGenerator chineseIDCardNumberGenerator = ChineseIDCardNumberGenerator.getInstance();
        // 获取模拟中手机号的对象
        GenericGenerator chineseMobileNumberGenerator = ChineseMobileNumberGenerator.getInstance();
        for (int i = 0; i < 33; i++) {
            // tring uuid, String firstName, String lastName, String idCard
            // 随机生成中文姓名
            String firstName = chineseNameGenerator.generate();
            // 将曾用名赋值给现用名
            String lastname = firstName;
            // 将模拟用户存储到用户列表
            userList.add(new User(IdUtil.fastSimpleUUID(), firstName, lastname, chineseIDCardNumberGenerator.generate(), chineseMobileNumberGenerator.generate()));
        }
    }
}
